from datetime import datetime,timedelta
# 导入异步任务函数--有坑，导入路径一定不能是全路径，不然报错
from celery_tasks.task01 import output_info_task01, task03
from celery_tasks.task02 import output_info_task02
'''
    生产者，可调度异步任务 或者 定时任务(由调度方控制)
'''
# 异步任务调度
# result = output_info_task01.delay("xiaomi")
# print(result.id)
#
# result02 = output_info_task02.delay("output_info_task02")
# print(result02.id)

# 定时任务调度
# 方式一，固定时间调度
# v1 = datetime(2024, 9, 7, 18, 7, 00)
# print(v1)
# v2 = datetime.utcfromtimestamp(v1.timestamp())
# print(v2)
# task03_result = task03.apply_async(args=["task03"],eta=v2)
# print(task03_result.id)


# 方式二，执行时间 + 指定间隔后调度
ctime = datetime.now()
# 使用 utc 时间
utc_ctime = datetime.utcfromtimestamp(ctime.timestamp())
# 执行间隔
time_delay = timedelta(seconds=10)
# 真正的执行时间 = 任务调度时间 + 间隔
task_time = utc_ctime + time_delay
task03_result = task03.apply_async(args=["task03"], eta=task_time)
print(task03_result.id)